1
การออกแบบระบบขนานกันด้วยกรอบคำถามห้าข้อ
AI019Lesson 9
00:00

การออกแบบระบบขนานกันในเอลิกซีร์ไม่ใช่แค่การสร้างกระบวนการอย่างง่าย; ต้องใช้วิธีการที่เข้มงวดเพื่อให้ได้ ความน่าเชื่อถือ 99.9999999% (เก้าเลข 9) ซึ่งเทียบเท่ากับประมาณ เวลาหยุดทำงาน 1 วินาทีทุกๆ 30 ปีเพื่อให้บรรลุมาตรฐานนี้ เราจึงใช้ กรอบคำถามห้าข้อ.

หลักการโครงสร้าง

ก่อนเขียนโค้ด OTP บรรทัดเดียว ให้ใช้คำถามเหล่านี้เพื่อแยกปัญหาที่มีสถานะ (stateful) ออกเป็นหน่วยย่อยที่จัดการได้ง่าย:

  • สภาพแวดล้อมและข้อจำกัด: เป็นโหนดเดียวหรือกลุ่มกระจายทั่วโลก? ข้อจำกัดด้านหน่วยความจำ/การสื่อสารอินพุต-เอาต์พุตคืออะไร?
  • จุดศูนย์กลาง: ข้อมูลอยู่ที่ไหน? ใครเป็นผู้ควบคุมสถานะ (เช่น บัญชีผลลัพธ์)?
  • ลักษณะการทำงานในขณะรัน: มีคำขอพร้อมกันกี่ครั้ง? เป็นงานที่ต้องใช้ทรัพยากรโปรเซสเซอร์ (CPU-bound) หรืองานที่ต้องใช้การสื่อสาร (IO-bound)?
  • การป้องกัน: สถานะใดที่ต้องคงอยู่? สิ่งใดที่เราสามารถเสียไปได้และเริ่มใหม่ได้?
  • การเริ่มต้นระบบ: เราจะเริ่มต้นโครงสร้างต้นไม้ได้อย่างไร? บริการใดที่พึ่งพาอีกบริการหนึ่ง?
99.9999999%ความน่าเชื่อถือสภาพแวดล้อมจุดศูนย์กลางการทำงานขณะรันการป้องกันกำลังทำงาน

โดยการมองคำถามเหล่านี้เป็นข้อจำกัด คุณจะหลีกเลี่ยงการเกิดระบบขนานแบบ

main.py
TERMINALbash — 80x24
> Ready. Click "Run" to execute.
>